1. Field of the Invention
The present invention relates to data manipulation, circuits, and more particularly, to such circuits in which the data is updated and accessed in response to asynchronous signals.
2. Background
Advances in microprocessor circuits have led to increased uses of such circuits in real-time environments. Many real-time applications of microprocessors require the microprocessor to take particular actions in relation to the precise time-of-day or other events.
Circuits for keeping track of the time-of-day are well known in the art and generally include a counter circuit coupled to the output of a clock pulse generator. The clock pulses are generated at a predetermined and generally fixed frequency so that the output of the counter is directly related to the time-of-day.
The clock pulses to the counter circuit are real-time external signals which periodically update the counter output. The counter circuit for such a time-of-day circuit can be considered to be one type of data manipulation circuit which updates or otherwise manipulates data in response to real-time signals or other external events.
Clock pulses are also used by microprocessor circuits to synchronize the operations of the microprocessor. However, clock pulses which are used to time the microprocessor operation are often asynchronous, that is, they are not synchronized with respect to the clock pulses of the time-of-day clock generator. As a consequence, it is possible for the microprocessor to request the time-of-day data while the date is being updated. This can cause the microprocessor to receive erroneous data. Similar types of problems can result with other asynchronous real-time data manipulation circuits.
One method of overcoming this problem is for the microprocessor to conduct multiple reads of the real-time data and to compare the data of the individual read operations to verify the data. Other schemes suggest blocking access by the microprocessor while the data is being updated. Each of these techniques can significantly delay the retrieval of the real-time data by the microprocessor.